FB#.SETMULTITURNS
Description
The FB#.SETMULTITURNS parameter allows setting the number of absolute multi-turns for the current mechanical position of a DSL encoder. This will change the absolute position of the encoder based on the value passed in.
The value passed in is the number of multi-turns to set for the current position. The single turn mechanical angle is maintained as that is used for commutation. A value of zero will set the current position to 0-360 degrees. Negative 1 will set the current position to -360-0 degrees. The range depends on the number of multi-turn bits supported by the encoder. For example, a 12-bit 4096 turn encoder has the range -2048 to +2047.
If FB#.INITSIGNED is set to 0, the range is shifted to not support negative numbers. For example, a 12-bit 4096 turn encoder would have the range 0-4095.
-
- This command is only available for Hiperface DSL encoders.
-
- The single turn position is used for commutation angle and should not be altered. Care must be taken when setting this value to ensure the motor is not in motion. If the motor is moving too much, the single turn position data may be corrupted and commutation may be affected..
Depending on the application, having the absolute position roll-over is not desired. When an encoder’s position rolls-over, the drive’s position may not roll-over at the same time. If the drive is then powered OFF and ON or the feedback device re-initialized, the drive position will read the encoder’s absolute position, which may be very different from what the drive last reported. For example, if an encoder that has 4096 multi-turn data rolled over, the drive may read 3000 turns with a positive value, but the encoder would be at -1096 turns (4096 gives +/- 2048 turns, 3000 positive direction turns goes to 2048 and rolls over to -2048 and keeps incrementing until -1096).
In most cases, using FB#.STOREMULTITURN should be enough to maintain the absolute position across reboots; however, in the event a drive must be replaced, the multi-turn data cannot be restored and the above situation would still occur.
If a given application knows how many turns in each direction it will be moving, it can set the absolute position to be within the range such that roll-over will never happen.
Example
Assume a theoretical application that has mechanical limits where the rotary position will not exceed +/-2000 revolutions with a 4096 turn absolute DSL encoder and the initial position reads as 1000 revolutions.
Since the encoder can only represent +2048, when it rotates +2000 revolutions, it will rollover to the negative range. This command can be used to set the current position to mid-range so that the rollover doesn’t occur.
-->FB1.P 4295324225298.000 [Counts] --> FB1.SETMULTITURNS 0 -->FB1.P 356975356.000 [Counts]
Versions
Action | Version | Notes |
---|---|---|
Implemented | 02-09-03-000 |
General Information
Type |
Write Only |
Units |
Revolutions |
Range |
Encoder dependent (i.e.: 12 bit multi-turn range is -2048 to +2047) |
Default Value |
N/A |
Data Type |
Integer |
Stored in Non-Volatile Memory |
No |
Variants Supported
All variants are supported.
Fieldbus Information
Command |
Index |
SubIndex |
Data Type |
Units |
Float Scale |
Access |
PDO Mappable |
---|---|---|---|---|---|---|---|
FB1.SETMULTITURNS |
3500h |
1eh |
Signed32 |
- |
- |
Write only |
No |
FB2.SETMULTITURNS |
3501h |
1eh |
Signed32 |
- |
- |
Write only |
No |
FB3.SETMULTITURNS |
3502h |
1eh |
Signed32 |
- |
- |
Write only |
No |
FB4.SETMULTITURNS |
3503h |
1eh |
Signed32 |
- |
- |
Write only |
No |
FB5.SETMULTITURNS |
3504h |
1eh |
Signed32 |
- |
- |
Write only |
No |
Name |
ID |
Hex |
Data Type |
Access |
Units |
---|---|---|---|---|---|
FB1.SETMULTITURNS |
30800 |
7850 |
Signed32 |
Read/Write |
- |
FB2.SETMULTITURNS |
30801 |
7851 |
Signed32 |
Read/Write |
- |
FB3.SETMULTITURNS |
30802 |
7852 |
Signed32 |
Read/Write |
- |
FB4.SETMULTITURNS |
30803 |
7853 |
Signed32 |
Read/Write |
- |
FB5.SETMULTITURNS |
30804 |
7854 |
Signed32 |
Read/Write |
- |
Parameter |
PNU |
Data Type |
Access |
Units |
---|---|---|---|---|
FB1.SETMULTITURNS |
30800 |
Signed32 |
Read/Write |
- |
FB2.SETMULTITURNS |
30801 |
Signed32 |
Read/Write |
- |
FB3.SETMULTITURNS |
30802 |
Signed32 |
Read/Write |
- |
FB4.SETMULTITURNS |
30803 |
Signed32 |
Read/Write |
- |
FB5.SETMULTITURNS |
30804 |
Signed32 |
Read/Write |
- |